﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ninject;
using PGE.AfastamentosTempMVC.Modelo;
using PGE.AfastamentosTempMVC.Servico.Interfaces;
using PGE.AfastamentosTempMVC.Repositorio.Interfaces;

namespace PGE.AfastamentosTempMVC.Servico.Implementacao
{
    public class TipoAfastamentoServico : ITipoAfastamentoServico
    {
        [Inject]
        public ITipoAfastamentoRepositorio Tipo_AfastamentoRepositorio { get; set; }

        #region ITipo_AfastamentoServico Members

        void ITipoAfastamentoServico.Adicionar(TipoAfastamento tipo_Afastamento)
        {
            Tipo_AfastamentoRepositorio.Adicionar(tipo_Afastamento);
        }

        void ITipoAfastamentoServico.Editar(TipoAfastamento tipo_Afastamento)
        {
            Tipo_AfastamentoRepositorio.Editar(tipo_Afastamento);
        }

        void ITipoAfastamentoServico.Deletar(TipoAfastamento tipo_Afastamento)
        {
            Tipo_AfastamentoRepositorio.Deletar(tipo_Afastamento);
        }

        void ITipoAfastamentoServico.DeletarMuitos(Func<TipoAfastamento, bool> where)
        {
            Tipo_AfastamentoRepositorio.DeletarMuitos(where);
        }

        TipoAfastamento ITipoAfastamentoServico.ObterPorID(int Id)
        {
            return Tipo_AfastamentoRepositorio.ObterPorID(Id);
        }

        TipoAfastamento ITipoAfastamentoServico.ObterPornome(Func<TipoAfastamento, bool> where)
        {
            return Tipo_AfastamentoRepositorio.ObterPornome(where);
        }

        TipoAfastamento ITipoAfastamentoServico.ObterPrimeiro()
        {
            return Tipo_AfastamentoRepositorio.ObterPrimeiro();
        }

        TipoAfastamento ITipoAfastamentoServico.ObterPrimeiro(Func<TipoAfastamento, bool> where)
        {
            return Tipo_AfastamentoRepositorio.ObterPrimeiro(where);
        }

        IEnumerable<TipoAfastamento> ITipoAfastamentoServico.ListarTudo()
        {
            return Tipo_AfastamentoRepositorio.ListarTudo();
        }

        IQueryable<TipoAfastamento> ITipoAfastamentoServico.GetQueryable()
        {
            return Tipo_AfastamentoRepositorio.GetQueryable();
        }

        IEnumerable<TipoAfastamento> ITipoAfastamentoServico.ListarMuitos(Func<TipoAfastamento, bool> where)
        {
            return Tipo_AfastamentoRepositorio.ListarMuitos(where);
        }

        #endregion
    }
}
